package de.mnit.basis.daten.struktur.tabelle.typ;

import de.mnit.basis.daten.S_Debug;
import de.mnit.basis.daten.struktur.S_Folge;
import de.mnit.basis.daten.struktur.S_LM_Basis;
import de.mnit.basis.daten.struktur.ordnen.S_Sortierbar;

/**
 * @author Michael Nitsche
 */
public interface S_TypTabelle<TG, TART extends S_LM_Basis<?>> extends S_Debug, S_Sortierbar<TG>, S_Folge<TG> {

	TG gZeile(int zeile);
	TART gSpalte(int spalte);
	<T> TART gSpalte(int spalte, Class<T> typ);
	boolean istLeer();
	void setze(int spalte, int zeile, Object objekt);
	void ersetzen(int zeile, Object... objekte);
	void plus(Object... zeile);
	void einfuegen(int zeile, Object... objekte);
	TG minus(int pos);

	S_TypTabelle<TG, TART> kopie();

}